package com.permission.dao;

import com.permission.model.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {
    // 根据用户名查询用户及其角色
    User selectUserWithRolesByUsername(@Param("loginname") String loginname);

    // 综合查询用户，支持动态条件
    List<User> selectUsersWithRolesAndMenus(
            @Param("loginname") String loginname,
            @Param("email") String email,
            @Param("status") Integer status,
            @Param("start") int start,
            @Param("pageSize") int pageSize);

    // 查询总条数（用于分页）
    int countUsers(
            @Param("loginname") String loginname,
            @Param("email") String email,
            @Param("status") Integer status);

    // 根据ID查询用户
    User selectUserById(@Param("id") Long id);

    // 维护用户角色关系
    void insertUserRole(@Param("userId") Long userId, @Param("roleId") Long roleId);
    void deleteUserRoles(@Param("userId") Long userId);
}